home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / Include / FWODPart.h < prev    next >
Encoding:
Text File  |  1996-04-25  |  9.4 KB  |  345 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWODPart.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWODPART_H
  11. #define FWODPART_H
  12.  
  13. #ifndef SOM_ODStorageUnitView_xh
  14. #include <SUView.xh>
  15. #endif
  16.  
  17. #ifndef SOM_ODCanvas_xh
  18. #include <Canvas.xh>
  19. #endif
  20.  
  21. #ifndef SOM_ODDragItemIterator_xh
  22. #include <DgItmIt.xh>
  23. #endif
  24.  
  25. //========================================================================================
  26. //    Forward Declarations
  27. //========================================================================================
  28.  
  29. class ODFrame;
  30. class ODWindow;
  31. class ODSession;
  32. class ODTypeList;
  33. class ODLinkSource;
  34. class ODObjectSpec;
  35. class ODEmbeddedFramesIterator;
  36. class ODLink;
  37.  
  38. class FW_CEmbeddingPart;
  39. class FW_CPoint;
  40. class FW_CPart;
  41.  
  42. //========================================================================================
  43. //    class FW_CODPart
  44. //========================================================================================
  45.  
  46. class FW_CODPart
  47. {
  48. //----------------------------------------------------------------------------------------
  49. //    Initialization/Destruction
  50. //
  51. protected:
  52.     FW_CODPart() {}
  53.     ~FW_CODPart() {}
  54.  
  55. //----------------------------------------------------------------------------------------
  56. //    ODPart API
  57. //
  58. public:
  59.     //--------------------------------------------------------------------------
  60.     //    Initialization
  61.     
  62.     static void                InitPart(Environment *ev,
  63.                                     FW_CPart* part,
  64.                                     ODStorageUnit* storageUnit);
  65.  
  66.     static void                InitPartFromStorage(Environment *ev,
  67.                                     FW_CPart* part,
  68.                                     ODStorageUnit* storageUnit);
  69.  
  70.     //--------------------------------------------------------------------------
  71.     //    From Layout protocol
  72.  
  73.     static void                DisplayFrameAdded(Environment *ev,  
  74.                                 FW_CPart* part,
  75.                                 ODFrame* odFrame);
  76.  
  77.     static void                DisplayFrameRemoved(Environment *ev,  
  78.                                 ODFrame* odFrame);
  79.  
  80.     static void                DisplayFrameConnected(Environment *ev, 
  81.                                 ODFrame* odFrame);
  82.  
  83.     static void                DisplayFrameClosed(Environment *ev,  
  84.                                 ODFrame* odFrame);
  85.  
  86.     static void                AttachSourceFrame(Environment *ev,
  87.                                 ODFrame* odFrame,
  88.                                 ODFrame* odSourceFrame);
  89.  
  90.     static void                FrameShapeChanged(Environment *ev,  
  91.                                 ODFrame* odFrame);
  92.     
  93.     static void                ViewTypeChanged(Environment *ev,  
  94.                                 ODFrame* odFrame);
  95.  
  96.     static void                PresentationChanged(Environment *ev,  
  97.                                 ODFrame* odFrame);
  98.  
  99.     static void                SequenceChanged(Environment *ev,  
  100.                                 ODFrame* odFrame);
  101.     
  102.     static void                LinkStatusChanged(Environment *ev,  
  103.                                 FW_CPart* part,
  104.                                 ODFrame* odFrame);
  105.     
  106.     static void                ContainingPartPropertiesUpdated(Environment *ev,
  107.                                 ODFrame* odFrame,
  108.                                 ODStorageUnit* propertyUnit);
  109.  
  110.     static ODInfoType        ReadPartInfo(Environment *ev,
  111.                                 FW_CPart* part,
  112.                                 ODFrame* odFrame,
  113.                                 ODStorageUnitView* storageUnitView);
  114.  
  115.     static void                WritePartInfo(Environment *ev,
  116.                                 ODInfoType partInfo,
  117.                                 ODStorageUnitView* storageUnitView);
  118.  
  119.     static void                ClonePartInfo(Environment *ev,
  120.                                 ODDraftKey key,
  121.                                 ODInfoType partInfo,
  122.                                 ODStorageUnitView* storageUnitView,
  123.                                 ODFrame* scope);
  124.  
  125.     static ODID                Open(Environment *ev,  
  126.                                 FW_CPart* part,
  127.                                 ODFrame* odFrame);
  128.  
  129.     //--------------------------------------------------------------------------
  130.     //    From Imaging protocol
  131.  
  132.     static void                Draw(Environment *ev,
  133.                                 ODFacet* facet,
  134.                                 ODShape* invalidShape);
  135.  
  136.     static void                FacetAdded(Environment *ev,  
  137.                                 ODFacet* facet);
  138.  
  139.     static void                FacetRemoved(Environment *ev,  
  140.                                 ODFacet* facet);
  141.  
  142.     static void                GeometryChanged(Environment *ev,
  143.                                 ODFacet* facet,
  144.                                 FW_Boolean clipShapeChanged,
  145.                                 FW_Boolean externalTransformChanged);
  146.  
  147.     static void                HighlightChanged(Environment *ev,  
  148.                                 ODFacet* facet);
  149.  
  150.     static void                CanvasChanged(Environment *ev,  
  151.                                 ODFacet* facet);
  152.  
  153.     static void                CanvasUpdated(Environment *ev, 
  154.                                 ODCanvas* canvas);
  155.  
  156.     static unsigned long    GetPrintResolution(Environment *ev, 
  157.                                 ODFrame* odFrame);
  158.  
  159.     //--------------------------------------------------------------------------
  160.     // From Part Activation protocol
  161.  
  162.     static FW_Boolean         BeginRelinquishFocus(Environment *ev,
  163.                                 FW_CPart* part,
  164.                                 ODTypeToken focus,
  165.                                 ODFrame* odOwnerFrame,
  166.                                 ODFrame* proposedFrame);
  167.     
  168.     static void             CommitRelinquishFocus(Environment *ev,
  169.                                 ODTypeToken focus,
  170.                                 ODFrame* odOwnerFrame,
  171.                                 ODFrame* odProposedFrame);
  172.                   
  173.     static void             AbortRelinquishFocus(Environment *ev,
  174.                                 ODTypeToken focus,
  175.                                 ODFrame* ownerFrame,
  176.                                 ODFrame* proposedFrame);
  177.                       
  178.     static void                FocusAcquired(Environment *ev,
  179.                                 ODTypeToken focus,
  180.                                 ODFrame* ownerFrame);
  181.       
  182.     static void                FocusLost(Environment *ev,
  183.                                 ODTypeToken focus,
  184.                                 ODFrame* ownerFrame);
  185.           
  186.  
  187.     //--------------------------------------------------------------------------
  188.     // From Part Persistance protocol
  189.  
  190.     static void                ExternalizeKinds(Environment *ev, 
  191.                                 ODTypeList* kindset);
  192.     
  193.     static void                ChangeKind(Environment *ev, 
  194.                                 ODType kind);
  195.  
  196.     //--------------------------------------------------------------------------
  197.     // From UI Events protocol
  198.  
  199.     static FW_Boolean        HandleEvent(Environment *ev,
  200.                                 FW_CPart* part,
  201.                                 ODEventData* event,
  202.                                 ODFrame* odFrame,
  203.                                 ODFacet* odFacet,
  204.                                 ODEventInfo* eventInfo);
  205.   
  206.     static void                AdjustMenus(Environment *ev, 
  207.                                 FW_CPart* part,
  208.                                 ODFrame* odFrame);
  209.     
  210.     //--------------------------------------------------------------------------
  211.     // From Undo protocol
  212.  
  213.     static void                UndoAction(Environment *ev, 
  214.                                 FW_CPart* part,
  215.                                 ODActionData* actionState);
  216.     
  217.     static void                RedoAction(Environment *ev, 
  218.                                 ODActionData* actionState);
  219.     
  220.     static void                DisposeActionState(Environment *ev,
  221.                                 ODActionData* actionState,
  222.                                 ODDoneState doneState);
  223.     
  224.     static void                WriteActionState(Environment *ev,
  225.                                 ODActionData* actionState,
  226.                                 ODStorageUnitView* storageUnitView);
  227.     
  228.     static void                ReadActionState(Environment *ev, 
  229.                                 ODStorageUnitView* storageUnitView,
  230.                                 ODActionData* actionData);
  231.  
  232.     //--------------------------------------------------------------------------
  233.     // From DragAndDrop protocol
  234.  
  235.     static void                FulfillPromise(Environment *ev, 
  236.                                 FW_CPart* part, 
  237.                                 ODStorageUnitView* promiseSUView);
  238.     
  239.     static void                DropCompleted(Environment *ev,
  240.                                 ODPart* destPart,
  241.                                 ODDropResult dropResult);
  242.     
  243.     static ODDragResult        DragEnter(Environment *ev,
  244.                                 ODDragItemIterator* dragInfo,
  245.                                 ODFacet* facet,
  246.                                 const FW_CPoint& where);
  247.     
  248.     static ODDragResult        DragWithin(Environment *ev,
  249.                                 ODDragItemIterator* dragInfo,
  250.                                 ODFacet* facet,
  251.                                 const FW_CPoint& where);
  252.     
  253.     static void                DragLeave(Environment *ev,
  254.                                 ODFacet* facet,
  255.                                 const FW_CPoint& where);
  256.     
  257.     static ODDropResult        Drop(Environment *ev,
  258.                                 ODDragItemIterator* dropInfo,
  259.                                 ODFacet* facet,
  260.                                 const FW_CPoint& where);
  261.  
  262.     //--------------------------------------------------------------------------
  263.     // From Linking protocol
  264.  
  265.     static ODLinkSource*     CreateLink(Environment *ev, 
  266.                                 FW_CPart* part,
  267.                                 ODByteArray* data);
  268.     
  269.     static void                RevealLink(Environment *ev, 
  270.                                 FW_CPart* part,
  271.                                 ODLinkSource* linkSource);
  272.     
  273.     static void                LinkUpdated(Environment *ev,
  274.                                 FW_CPart* part, 
  275.                                 ODLink* updatedLink,
  276.                                 ODUpdateID updateID);
  277.     
  278.     // --- for containing parts ---
  279.     
  280.     static void                EmbeddedFrameUpdated(Environment *ev,
  281.                                 FW_CPart* part,
  282.                                 ODFrame* odFrame,
  283.                                 ODUpdateID updateID);
  284.     
  285.     static FW_Boolean        EditInLinkAttempted(Environment *ev, 
  286.                                 FW_CPart* part,
  287.                                 ODFrame* odFrame);
  288.  
  289.     //--------------------------------------------------------------------------
  290.     // From Embedding protocol
  291.  
  292.     static ODFrame*            RequestEmbeddedFrame(Environment *ev,
  293.                                 FW_CEmbeddingPart* part,
  294.                                 ODFrame* containingFrame,
  295.                                 ODFrame* baseFrame,
  296.                                 ODShape* suggestedFrameShape,
  297.                                 ODPart* embeddedPart,
  298.                                 ODTypeToken viewType,
  299.                                 ODTypeToken presentation,
  300.                                 FW_Boolean isOverlaid);
  301.     
  302.     static void                RemoveEmbeddedFrame(Environment *ev,
  303.                                 FW_CEmbeddingPart* part,
  304.                                 ODFrame* embeddedFrame);
  305.     
  306.     static ODShape*            RequestFrameShape(Environment *ev,
  307.                                 ODFrame* embeddedFrame,
  308.                                 ODShape* frameShape);
  309.     
  310.     static void                UsedShapeChanged(Environment *ev,
  311.                                 ODFrame* embeddedFrame);
  312.     
  313.     static ODShape*            AdjustBorderShape(Environment *ev,
  314.                                 ODFacet* embeddedFacet,
  315.                                 ODShape* shape);
  316.  
  317.     static ODStorageUnit*    AcquireContainingPartProperties(Environment *ev, 
  318.                                 ODFrame* odFrame);
  319.  
  320.     static FW_Boolean        RevealFrame(Environment *ev,
  321.                                 ODFrame* embeddedFrame,
  322.                                 ODShape* revealShape);
  323.         
  324.     //--------------------------------------------------------------------------
  325.     // Inherited ODPart API
  326.  
  327.     static void                Externalize(Environment *ev, FW_CPart* part);
  328.     static void             CloneInto(Environment *ev,
  329.                                 FW_CPart* part,
  330.                                 ODDraftKey key,
  331.                                 ODStorageUnit* toSU,
  332.                                 ODFrame* scope);
  333.  
  334.     static void                Release(Environment *ev, FW_CPart* part);
  335.     static void                ReleaseAll(Environment *ev, FW_CPart* part);
  336.     
  337.     static ODSize            Purge(Environment *ev, FW_CPart*, ODSize size);
  338.  
  339. };
  340.  
  341. #endif
  342.  
  343.  
  344.  
  345.